NIO相关基础篇(一)-- 空间概念

  |  

用户空间以及内核空间概念

我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。

  • 针对linux操作系统而言,将最高的 1G 字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为 内核空间,而将较低的 3G 字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间
  • 每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享。于是,从具体进程的角度来看,每个进程可以拥有4G字节的虚拟空间。

空间分配如下图所示:

有了用户空间和内核空间,整个linux内部结构可以分为三部分,从最底层到最上层依次是:硬件–>内核空间–>用户空间。

需要注意的细节问题,从上图可以看出内核的组成:

  1. 内核空间中存放的是内核代码和数据,而进程的用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中。
  2. Linux使用两级保护机制:0级供内核使用,3级供用户程序使用。

Copyright © 2018 - 2020 Kuanger All Rights Reserved.

访客数 : | 访问量 :